This disclosure relates to filesystem-based communication of computer applications. More specifically, the disclosure relates to communication between participating applications that is abstracted away from the application layer using filesystem API calls.
The use of computer applications has proliferated in recent years beyond just a single platform or single hardware system. Various devices (e.g., desktop computers, laptop computers, game consoles, or the like) operate computer applications that generate data that the devices then may need to transmit to each other to perform various operations. The rise of the Internet of Things (IoT) has enabled connectivity to new device types, such as vehicles, home appliances, or office or industrial equipment. Each new device type will have computer applications installed on it to operate the device. Computer applications that are operating on potentially incompatible platforms increasingly need to transmit data to each other. For example, a web application on mobile computer may be used to transfer software updates to a vehicle computer application in order to keep the vehicle computer up to date.
While computer applications designed to adhere to certain protocols may be able to exchange data out of the box, different devices may use different operating systems and require a unique or proprietary communication methods. Incompatible data transfer methodologies require further coding or customization to enable interoperability. Furthermore, the development and maintenance of a computer application that exchange data with multiple other computer applications can become increasingly cumbersome. Supporting an increasing number of requirements consumes more development time and resources and/or delays computer application production. For instance, if a new device requires adherence to a specific protocol, then development resources have to be diverted to code for new interfaces for communication with the device. Likewise, the production of a computer application for the device may be delayed until it is appropriately updated to accommodate specific communication needs.
Some known systems facilitate interoperability between computer applications by providing an intermediary platform for computer application programmers. These systems are limited in that they still require programmer person-hours to be spent learning a new platform and getting it to work with their computer application. Such and other known systems are also limited in that they may require programming knowledge limited to specialists or experts in the field. Such systems may also be limited in their inability to leverage basic computer programming functions that are common to multiple platforms. Such workarounds may prove difficult or not worthwhile with respect to budgets and timelines. Workarounds may even impossible in cases where a particular computer application requires restriction of data exchange to certain protocols, such that no intermediary platform will enable the necessary interoperability.
Accordingly, there is a need for more effective techniques for enabling computer applications to provide and receive data resources from other potentially incompatible computer applications.